The present invention relates in general to programmed data processing systems, and in particular to programmable deterministic finite state automata machines and graphical user interface (GUI) systems.
A finite state automaton, also called a xe2x80x9cfinite state machinexe2x80x9d or xe2x80x9ctransducer,xe2x80x9d consists of a set of states, a set of input events, a set of output events, and a state transition function. The set of states includes an internal state. Some states may be designed as xe2x80x9cterminal states.xe2x80x9d The state transition function takes the current state in an input event and returns the new set of output events and the next state. The finite state machine can also be viewed as a function which maps an ordered sequence of input events onto a corresponding sequence of output events.
A deterministic finite state automaton is one where each next state is uniquely determined by a single input event. A deterministic finite state automaton is contrasted with a backtracking automaton, where at each state there may be several possible actions and the only way to choose between them is to try each one and backtrack if that transition fails.
A deterministic finite state automaton can be depicted in a variety of manners well-recognized within the mathematical art. One way in which a deterministic finite state automaton might be depicted is in a table format. For example:
For greater clarity, a deterministic finite state automaton may be depicted graphically as in FIG. 1, which illustrates the automaton of the table. The first row of the table format is depicted by a Begin state 101. The next state listed on the table is A 103. Movement is made from the Begin state 101 to the A state 103 upon a starting condition 111. Likewise, the diagram illustrates that states B 105 each has exit conditions for 5119, and 6121, and state 107 has an exit condition 4117.
Finite state automata have been reduced to programming code, as demonstrated by FIG. 2. While FIG. 2 demonstrates iterative meta-code to implement the finite state automaton shown in the table above and FIG. 1, those skilled in the art will appreciate that deterministic finite state automata may be implemented in a variety of programming languages to achieve results similar to the results obtained from the pseudo-code in FIG. 2. Deterministic finite state automaton are well-suited to being programmed in object-oriented languages. In fact, object-oriented languages have heretofore been considered ideal for computer implementation of the deterministic finite state automata model.
Those skilled in the art will appreciate, however, that, regardless of the language used, computer security relating to a coded implementation of such deterministic finite state automata is often lacking. The code which creates the model may be decompiled or directly accessed by a programmer of competent skill, revealing the underlying code. The underlying code may contain trade secrets, security implementations, or other confidential information which are not desired to be public information. The instant invention addresses the security implications inherent in this system of deterministic finite state automata implementation and renders a secure system in which finite state automata may be implemented and modified without revelation of underlying code.
The invention is a graphical-oriented editor that greatly improves the security implications involved in the creation, testing, and subsequent revision of deterministic finite state automata. The editor is based upon the concept of functional units (FUs). Each FU represents a state in a deterministic finite state automaton. Each FU is an object that facilitates the meaningful connection to other FUs to construct a larger logical entity which is an activity functional unit (AFU). An AFU may be treated as a FU and nested. Notably, each FU may be locked so that its underlying defining elements may not be viewed by an unauthorized user.
By manipulating the FUs and defining relationships between them graphically on the screen, the instant invention allows a user to build a complete program from FUs without the necessity of their viewing the underlying code. The resulting program is an AFU and can be locked and later combined with other AFUs and previously created AFUs to build large, complex programs.
Three control structures are necessary to implement to any program: sequence, branching, and iteration. Therefore, the instant invention provides for each of these features in order to permit construction of the most powerful and fully functional programs.
A database structure is also disclosed for facilitation of the display of the FU in the graphical environment and the tracking of the security features of the instant invention.
The development cycle for products built from FUs through the instant graphical editor is considerably shorter than the development cycle for products constructed in a more traditional coding manner. Consequently, the cost of development is decreased. Short development cycles also enable development groups to more quickly respond to product management and marketing requirements.
The use of FUs and the graphic editor also considerably reduces the complexity of modifications to existing programs. Consequently, the cost of upkeep and maintenance of programs is decreased. Development groups are also able to then respond quickly to modification requirements.
The foregoing outlines broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter, which form the subject of the claims of the invention.